home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
data
/
pvap322a
/
pvapmain.plt
< prev
next >
Wrap
Text File
|
1993-11-30
|
13KB
|
479 lines
/* MOPTERM用 Pc-Van Auto-Pilot PVAPver3.22a */
/* */
/* All Right Reserved, Copyright(c) モップ 1991-1993 */
/* (NIFTY PFF00570) */
/* All Right Reserved, Copyright(c) フェイス 1991-1993 */
/* (NIFTY VFA03257) */
/* (PC-VAN DSA60894) */
/* All Right Reserved, Copyright(c) Yama-chan 1991-1993 */
/* (NIFTY PEE01244) */
/* All Right Reserved, Copyright(c) すけるとん☆ 1991-1992 */
/* (NIFTY NBE00503) */
/* All Right Reserved, Copyright(c) 氷面鏡 1992 */
/* (NIFTY GEG01261) */
/* All Right Reserved, Copyright(c) おくと★ 1993 */
/* (NIFTY PEE01566) */
/* 変数領域等の設定 */
var ID [8]; /* ID */
var PASS [8]; /* パスワード */
var AP [20]; /* 2400bpsのAPの電話番号 */
var AP2 [20]; /* 1200bpsのAPの電話番号 */
var AP3 [20]; /* PC-VAN+専用APの電話番号 */
var BPS [4]; /* アクセスするAPのスピード */
var TEL [1]; /* 回線の種類(ダイアルかプッシュホンか) */
var MODEM [40]; /* モデムコマンド */
var SAVE [8]; /* ログ保存モード */
var SAVE2 [5]; /* ログ保存モード */
var LIST [2]; /* 各種リスト取得時の画面数 */
var CALAMI [4]; /* 通信終了時の処理 */
var UPDOWN [3]; /* 通信メニュー初期値(アップ・ダウンロードするかどうか)*/
var BILLCHK [3]; /* 通信メニュー初期値(課金情報確認するかどうか) */
var PRESER [3]; /* 通信メニュー初期値(ログを保存するかどうか) */
var ACCEAP [7]; /* 通信メニュー初期値(アクセスするAP) */
var REDIAL [4]; /* 通信メニュー初期値(リダイアル回数) */
var LOGPATH [64]; /* ログ保存ディレクトリ */
var TEMPPATH [64]; /* テンポラリファイルを置くディレクトリ */
var TITLEPATH [64]; /* 未読タイトルのログを置くデイレクトリ */
var DIR2 [64]; /* TXF他を置くディレクトリ */
var DIR1 [64]; /* PVAPを起動したディレクトリ */
var SOUND [64]; /* 音声メッセージファイルを置くディレクトリ */
var BELFIL [64]; /* ベル音の変わりに鳴らすSNDファイル */
var VBELL [3]; /* 画面フラッシュするかどうか */
var FMGR [64]; /* ファイルマネージャファイル名 */
var r [3]; /* 背景色(赤) */
var g [3]; /* 背景色(緑) */
var b [3]; /* 背景色(青) */
var PCVAN [1536]; /* PC-VANでの処理 */
var REC [3]; /* スイッチ(ログをセーブ中かどうか) */
var TIMER [3]; /* スイッチ(指定時刻に通信かどうか) */
var WHERE [8]; /* 場所の種類(ログをボード別に保存用) */
var WHERE2 [8]; /* 現在位置 */
var DOVAN [5]; /* 巡回モード */
var TITCHECK [3]; /* 未読タイトルを取得したかどうか */
var SETFILE [64]; /* 設定ファイル用 */
var VANFILE [64]; /* 設定ファイル用 */
var SETFILE1 [64]; /* 設定ファイル用 */
var SETFILE2 [64]; /* 設定ファイル用 */
var LOGFILE [12]; /* ログファイル名(yymmddnn.*) */
var A [10]; /* 雑用1 */
var B [10]; /* 雑用2 */
var C [10]; /* 雑用3 */
var D [10]; /* 雑用4 */
var t [1]; /* 前バージョンとの互換用 */
var HANDLE [12]; /* 前バージョンとの互換用 */
%ver {ver3.22a}; /* PVAPのバージョン */
%VL {322a}; /* ドキュメント・バージョンアップ概要表示用 */
%BELL @xc({07}); /* ベル設定 */
/* 音声メッセージ出力処理 */
%SNDMSG{ /* SNDファイルが無い場合はベルを鳴らす */
[file]
case (SOUND={},
{No},{case (@filechk(SOUND|{\}|file),
{Yes}, {snd(SOUND|{\}|file)},
{No}, {display(BELL)})},
{Yes},{display(BELL)});
};
%SNDMSG2{ /* SNDファイルが無い場合は何も鳴らさない*/
[file]
case (SOUND={},
{No},{case (@filechk(SOUND|{\}|file),
{Yes},{snd(SOUND|{\}|file)})},
{Yes},);
};
/* n番目の部分文字列をとりだす関数 */
%nth{
[str,n,sep] /* 元の文字列,順番,区切り文字列 */
var a[256];
var m[3];
a:=str;
m:=0;
case (n<1,
{Yes}, {im({})},
{No}, {loop({
m:=m+1;
case (m==n||a={},
{Yes},{im({No})},
{No},{a:=@body(a,sep);im({Yes})});
});
im(@head(a,sep));});
};
/* パラメタで指定されたディレクトリへ移動する
(「A:\」と「A:」の両方が可能) */
%setcdir2{
[dir]
%dir2 @case(@nochar(dir),2,{im(dir|{\})},,{im(dir)});
setcdir(dir2)
};
/* 指定されたディレクトリ配下に第2パラメタで指定されたディレクトリを
(もし無ければ)作成する */
%mkdir{
[dir,name]
dispoff({Yes});
case (@setcdir2(dir),
{Yes}, {command({mkdir }|name)},
{No}, {footnote({装置(}|dir|{)が使えませんが?});
select({装置(}|dir|{)が使えませんが?},99999,{},
{ もう一回やってみる },{mkdir(dir,name)},
{ 自動処理をやめる },{stop},
{ 無視して先の処理をやる },{});});
dispoff({No})
};
/* 指定されたディレクトリを(もし無ければ)作成する */
%mkdir2{
[dir]
case (@setcdir2(dir),
{Yes},,
{No}, {mkdir2(@body(dir,,{\}));
mkdir(@body(dir,,{\}),@tail(dir,{\}));});
};
/* 指定されたディレクトリに 「yymmddnn.*」 というファイルを作成する */
%crefile{
[path,sfx]
var n[2];
var file1[12];
%d @getdt;
%date @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2);
n:=-1;
mkdir2(path);
setcdir2(path);
case (SAVE2,
{EVERY},{loop({
n:=n+1;
case(@nochar(n)=1,{Yes},{n:={0}|n});
case (sfx={},
{Yes}, {file1:=date|n},
{No}, {file1:=date|n|{.}|sfx});
case (@filechk(file1)={No}||n==99,
{Yes},{im({No})},
{No}, {im({Yes})});
})},
/* ここからした 930328 おくと★ */
{MONTH},{case (sfx={},
{Yes}, {file1:=@getchar(d,3,2)|
@getchar(d,6,2)},
{No}, {file1:=@getchar(d,3,2)|
@getchar(d,6,2)|{.}|sfx})},
/* ファイル名を YYMM.* とする */
/* ここまで 930328 おくと★ */
{DAY}, {case (sfx={},
{Yes}, {file1:=date},
{No}, {file1:=date|{.}|sfx})});
setcdir2(DIR1);
im(file1);
};
/* 指定されたディレクトリに 「yymmddnn.*」 というファイルを作成する */
%crefile2{
[path,sfx]
var n[2];
var file1[12];
%d @getdt;
%date @getchar(d,3,2)|@getchar(d,6,2)|@getchar(d,9,2);
n:=-1;
mkdir2(path);
setcdir2(path);
loop({
n:=n+1;
case(@nochar(n)=1,{Yes},{n:={0}|n});
case (sfx={},
{Yes}, {file1:=date|n},
{No}, {file1:=date|n|{.}|sfx});
case (@filechk(file1)={No}||n==99,
{Yes},{im({No})},
{No}, {im({Yes})});
});
setcdir2(DIR1);
im(file1);
};
/* 現在の日付・時刻を得る 「yyyy-mm-dd (曜) hh:mm:ss」 */
%getdt{
%dt @daylong;
%week @case (@getchar(dt,12,3),
{Sun},{im({日})},{Mon},{im({月})},
{Tue},{im({火})},{Wed},{im({水})},
{Thu},{im({木})},{Fri},{im({金})},
{Sat},{im({土})},,{im({ })});
im(@getchar(dt,1,4)|{-}|@getchar(dt,6,2)|{-}|@getchar(dt,9,2)|
{ (}|week|{) }|@getchar(dt,16,8));
};
/* 全てのメモをクローズする */
%CloseAllMemo{
case(@mlast!=0 && @mcheck==0,{Yes},{mopen(@mlast)});
case(@mcheck!=0,{Yes},{loop({mclose(2);im(@mcheck!=0)})});
};
/* メモを削除する */
%CloseMEMO{
[memono]
case (@mcheck!=memono,
{Yes},{CloseAllMemo;mopen(memono);mclose(3)},
{No},{mclose(3)});
};
/* 全てのメモを非編集状態にする */
%InactMemo{
case(@mcheck!=0,{Yes},{mclose(1)});
};
/* 全てのメモを削除する */
%AllDelMEMO{
loop({
case(@mcheck>=memono,{Yes},{mclose(3)});
im(@mcheck>=memono);
});
CloseAllMemo;
loop({
case (@mlast>=memono,
{Yes}, {case(@mcheck!=@mlast,{Yes},{mopen(@mlast)});
mclose(3);
im({Yes})},
{No}, {im({No})});
});
};
/* 一時的に終了 */
%Pause{
chat({Yes});
loop({
footnote({再開新メモ},{b});
waitx({});
case (@xtype,
101, {im({No})},
201, {im({No})},
102, {case (@mlast<9,
{Yes}, {%new @mlast+1;
CloseAllMemo;
madd(new,{});
mopen(new,0,21,639,459);});
im({Yes})},
202, {case (@mlast<9,
{Yes}, {%new @mlast+1;
CloseAllMemo;
madd(new,{});
mopen(new,0,21,639,459);});
im({Yes})},,
{im({Yes})});
});
CloseAllMemo;
footnote({});
chat({No});
};
/* PVAPの説明 */
%NOTEsel{
loop({
SNDMSG({erande_f.snd});
footnote({表示する物を選択して下さい});
select ({表示する物を選択して下さい},
99999,{im({No})},
{ バージョンアップ概要 },
{NOTE({VUP});im({Yes})},
{ ドキュメントファイル },
{NOTE({DOC});im({Yes})},
{ 終 了 },
{im({No})});
});
};
%NOTE{
[file];
case (@mlast==9,
{Yes},
{SNDMSG({kaknin_f.snd});
footnote({メモ9を削除してもよろしいですか?});
select ({メモ9を削除してもよろしいですか?},
99999,,
{ は い },{NOTE1(file)},
{ いいえ },)},
{No},
{NOTE1(file)});
};
%NOTE1{
[file];
var MEMO[1];
case (@mlast==9,
{Yes}, {CloseAllMemo;
mclear(MEMO)},
{No}, {MEMO:=@mlast+1;
CloseAllMemo;
madd(MEMO,{\n});
mclear(MEMO)});
case (@filechk(DIR1|{\PVAP}|VL|{.}|file),
{Yes}, {mread(DIR1|{\PVAP}|VL|{.}|file,MEMO)});
mopen(MEMO,0,21,639,459,{r});
loop({
footnote({終了},{b});
waitx ();
case (@xtype,
101,{CloseMEMO(MEMO);im({No})},
201,{CloseMEMO(MEMO);im({No})},,{im({Yes})});
});
};
/* 設定項目確認 */
%setchk{
%Setchk{
[Messege]
SNDMSG({okasi_f.snd});
footnote(Messege|{が指定されていません});
select(Messege|{が指定されていません},99999,,{ 確認 },);
};
case (ID={},
{Yes}, {Setchk({ユーザーID});
setcdir2(DIR1);
#PVAPSET.PLP});
case (PASS={},
{Yes}, {Setchk({パスワード});
setcdir2(DIR1);
#PVAPSET.PLP});
case (AP={}&&AP2={}&&AP3={},
{Yes}, {Setchk({APの電話番号});
setcdir2(DIR1);
#PVAPSET.PLP});
case (TEL={},
{Yes}, {Setchk({使用回線の種類});
setcdir2(DIR1);
#PVAPSET.PLP});
case (LOGPATH={},
{Yes}, {Setchk({ログを保存するディレクトリ});
setcdir2(DIR1);
#PVAPSET.PLP});
case (TEMPPATH={},
{Yes}, {Setchk({テンポラリファイルを置くディレクトリ});
setcdir2(DIR1);
#PVAPSET.PLP});
case (TITLEPATH={},
{Yes}, {TITLEPATH:={B:\TITLE}});
case (SAVE, {}, {SAVE:= {WHOLE}});
case (SAVE2, {}, {SAVE2:={EVERY}});
case (LIST, {}, {LIST:= {1}});
case (CALAMI,{}, {CALAMI:={CONT}});
};
/* 初期設定 */
%init{
case (VBELL={Yes}||VBELL={No},{Yes},{visibell(VBELL)});
case (@tail(BELFIL,{.}),
{snd},{bellfile(BELFIL)},
{SND},{bellfile(BELFIL)});
backclr(r,g,b);
};
/* メニュー画面 */
%MAINMENU{
loop({
footnote({処理を選択して下さい});
SNDMSG({erande_f.snd});
select({Pc-Van Auto-Pilot PVAP}|ver,
99999,{im({Yes})},
{ 通信開始 },
{setcdir2(DIR1);#PVAPONLN.PLP;im({Yes})},
{ アップ予約 },
{SUBMENU1;im({Yes})},
{ ダウン予約 },
{SUBMENU2;im({Yes})},
{ ログ参照 },
{setcdir2(DIR1);#PVAPVIEW.PLP;im({Yes})},
{ USER設定 },
{setcdir2(DIR1);#PVAPSET.PLP;im({Yes})},
{ 処理設定 },
{setcdir2(DIR1);#PVAPVAN.PLP;im({Yes})},
{ 設定読込 },
{setcdir2(DIR1);#PVAPSCHG.PLP;im({Yes})},
{ ファイル操作 },
{setcdir2(DIR1);
case(FMGR,{}, {#PVAPFILE.PLP},,
{setcdir(@body(FMGR,,{\}));
%fmgr @read(FMGR);fmgr});
im({Yes})},
{ ID リスト },
{setcdir2(DIR1);#PVAPLIST.PLP;im({Yes})},
{ PVAP説明 },
{NOTEsel;im({Yes})},
{ 一時終了 },
{Pause;im({Yes})},
{ 終 了 },
{SUBMENU3;im({Yes})});
});
};
%SUBMENU1{
loop({
SNDMSG({erande_f.snd});
footnote({処理を選択して下さい});
select({処理を選択して下さい},
99999,{im({No})},
{ 新規予約 },
{setcdir2(DIR1);#PVAPUSET.PLP;im({Yes})},
{ 確認・変更 },
{setcdir2(DIR1);#PVAPUKAK.PLP;im({Yes})},
{ 終 了 },{im({No})});
});
};
%SUBMENU2{
loop({
SNDMSG({erande_f.snd});
footnote({処理を選択して下さい});
select({処理を選択して下さい},
99999,{im({No})},
{ 新規予約 },
{setcdir2(DIR1);#PVAPDSET.PLP;im({Yes})},
{ 確認・変更 },
{setcdir2(DIR1);#PVAPDKAK.PLP;im({Yes})},
{ 終 了 },{im({No})});
});
};
%SUBMENU3{
loop({
SNDMSG({erande_f.snd});
footnote({処理を選択して下さい});
select({処理を選択して下さい},
99999,{im({No})},
{ PVAPを終了(再起動 PF9)},{SNDMSG2({sayona_f.snd});
setcdir2(DIR1);
stop},
{ MopTerm 2を終了 },ENDKAK,
{ メインメニューへ戻る },{im({No})});
});
};
%ENDKAK{
loop({
SNDMSG({kaknin_f.snd});
footnote({確認して下さい});
select({確認して下さい},
99999,{im({No})},
{ 終了する },{stopterm},
{ 終了しない },{im({No})});
});
};
/* 実行 */
setoak({J});
DIR1:=@getcdir;
case(@nochar(DIR1),{3},{DIR1:=@getchar(DIR1,{1},{2})});
setpf(9,{footnote({Loading PVAP ...});}|
{setcdir(}|@xc({7b})|DIR1|@xc({7d})|{);}|
{#PVAPMAIN.PLT});
SETFILE:=DIR1|{\PVAPSET.SET};
case (@filechk(SETFILE),
{Yes}, {setcdir2(DIR1);#PVAPSET.SET;SETFILE1:={標準設定}},
{No}, {setcdir2(DIR1);#PVAPSET.PLP});
SNDMSG2({konn_f.snd});
wait({1});
setchk;
init;
mkdir2(LOGPATH);
mkdir2(TEMPPATH);
VANFILE:=DIR1|{\PVAPVAN.SET};
case (@filechk(VANFILE),
{Yes}, {setcdir2(DIR1);#PVAPVAN.SET;SETFILE2:={標準設定}},
{No}, {setcdir2(DIR1);#PVAPVAN.PLP});
MAINMENU;